package wang.com;

import jdk.incubator.vector.VectorOperators;

import javax.xml.stream.events.Namespace;
import java.security.PublicKey;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.function.Function;
import java.util.function.Predicate;
import java.util.stream.Collectors;
import java.util.stream.Stream;

/**
 * @ProjectName: untitled
 * @Titile: StreamDemo
 * @Author: 王亦凡1
 * @Description: TODO
 */
public class StreamDemo {
    public static void main(String[] args) {
        test0();
        test1();

    }
      public static void test0(){
          List<String>names = new ArrayList<>();
          names.add("张三");
          names.add("王五");
          names.add("李四");
          names.add("张三1");
          names.add("张无忌");
          names.add("王彪");
          names.add("张三峰");
          List<String> list1 = new ArrayList<>();
          names.forEach(name->{
              if(name.startsWith("张")){
                  list1.add(name);
              }
          });
          List<String> list2 = new ArrayList<>();
          list1.forEach(name->{
              if(name.length() == 3){
                  list2.add(name);
              }
          });
          list2.forEach(System.out::println);
          System.out.println("-------------------");
          //1.获取集合流对象
          names.stream().filter( s->s.startsWith("张")).filter(s->s.length()==3).forEach(System.out::println);

      }
    public static void  test1(){
        List<Integer> list = new ArrayList<>();
        list.add(1);
        list.add(2);
        list.add(3);
        list.add(4);
        list.add(5);
        list.add(6);
        list.add(7);
        list.add(8);
        list.add(9);
        list.add(10);
        list.stream().filter(s->s%2==0).toList();
        System.out.println(list);
    }
//    public static void test2(){
//        List<String> list = new ArrayList<>();
//        list.add("张三,23");
//        list.add("王五,24");
//        list.add("李四,25");
//        list.stream().filter (s-> {
//                String[] split = s.split(",");
//                int age =Integer.parseInt(split[1]);
//                return age>=24;
//        }).collect(Collectors.toMap(s->{
//            String[] split = s.split(",");
//            return split[0];
//        },s->{
//            String[] split = s.split(",");
//            return split[1];
//        }));
//        Map.forEach(k,v)->{
//            System.out.println(k+"-"+v);
//        });
//    }
public static void test3(){
        List<String> list1 = new ArrayList<>();
        list1.add("冬大为");
        list1.add("黄渤");
        list1.add("蔡徐坤");
        list1.add("李易峰");
        list1.add("张艺兴");
        list1.add("成龙");
        List<String>list2 = new ArrayList<>();
        list2.add("迪丽热巴");
        list2.add("古力娜扎");
        list2.add("范冰冰");
        list2.add("杨幂");
        list2.add("赵丽颖");
        list2.add("林志颖");
        list1.stream().filter(new Predicate<String>(){
            @Override
            public boolean test(String s) {
                return s.length()==3;
            }
        }).limit(2);
        list2.stream().filter(new Predicate<String>(){
            @Override
            public boolean test(String s) {
                return s.startsWith("杨") ;
            }
        }).skip(1);
    Stream.concat(list1.stream(),list2.stream()).forEach(System.out::println);

}



}
